home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / CDTV / cdtvtools-11 / MemCard / memcard_Boot.asm < prev    next >
Encoding:
Assembly Source File  |  1991-06-24  |  1.9 KB  |  113 lines

  1. *
  2. *  memcard_Boot.asm
  3. *
  4. *    Test $E00000 memory card at reboot for DIAG_CART and RomTag success.
  5. *
  6. *    Kaori Kuwata/CDTV Project  Feb 7,1991
  7. *
  8. *
  9.     INCLUDE    "exec/types.i"
  10.     INCLUDE    "exec/resident.i"
  11.     INCLUDE "hardware/custom.i"
  12.     INCLUDE "hardware/cia.i"
  13.  
  14. TRYDIAG        EQU    0
  15.  
  16. CUSTOM        EQU    $DFF000
  17. CIAADDRA    EQU    $BFE201
  18. CIAAPRA        EQU    $BFE001
  19.  
  20. VERSION        EQU    34
  21.  
  22. CARTBASE    EQU    $E00000
  23. COOKIE        EQU    $1111
  24.  
  25. COLORON        EQU    $0200
  26. CC_PINK        EQU    $0F89
  27. CC_PURPLE    EQU    $086B
  28.  
  29. ODELAY        EQU    $16
  30. IDELAY        EQU    $8000
  31.  
  32. RW_PROTECT    EQU    $5257    ;Write Protect code
  33.         CODE
  34. Start:
  35. * This doesn't work - I don't know why... RomTag Works though
  36.  
  37.     IFGT    TRYDIAG
  38.  
  39. CartCookie:    DC.W    COOKIE
  40.  
  41. DiagCartCode:
  42. *--- Turn off ROM phantom and clear overlay
  43.     MOVE.B    #(CIAF_OVERLAY!CIAF_LED),CIAADDRA
  44.     MOVE.B    #CIAF_LED,CIAAPRA
  45.  
  46. *--- Disable and clear all interrupts
  47.     MOVE.L    #CUSTOM,a0
  48.     MOVE    #$7FFF,d0
  49.     MOVE    d0,intena(a0)
  50.     MOVE    d0,intreq(a0)
  51.     MOVE    d0,dmacon(a0)
  52.  
  53. *--- Make a pink screen for a bit
  54.     MOVE.W    #COLORON,bplcon0(a0)
  55.     MOVE.W    #0,bpldat(a0)
  56.     MOVE.W    #CC_PINK,color(a0)
  57.  
  58.     MOVE.L    #ODELAY,d1
  59. 1$    MOVE.L    #IDELAY,d0
  60. 2$    SUB.L    #1,d0
  61.     BNE.S    2$
  62.     SUB.L    #1,d1
  63.     BNE.S    1$
  64.  
  65.     JMP     (a5)
  66.  
  67.     DC.L    0
  68.  
  69.     ENDC
  70.  
  71.     DC.W    RW_PROTECT            ;Write protect code
  72. RomTag:
  73.                         ;STRUCTURE RT,0
  74.     DC.W    RTC_MATCHWORD            ;UWORD RT_MATCHWORD
  75.     DC.L    CARTBASE+(RomTag-Start)        ;APTR  RT_MATCHTAG
  76.     DC.L    CARTBASE+(endtag-Start)        ;APTR  RT_ENDSKIP
  77.     DC.B    RTF_COLDSTART            ;UBYTE RT_FLAGS
  78.     DC.B    VERSION                ;UBYTE RT_VERSION
  79.     DC.B    0                ;UBYTE RT_TYPE
  80.     DC.B    70                ;BYTE  RT_PRI
  81.     DC.L    CARTBASE+(modName-Start)    ;APTR  RT_NAME
  82.     DC.L    CARTBASE+(idtag-Start)        ;APTR  RT_IDSTRING
  83.     DC.L    CARTBASE+(Init-Start)        ;APTR  RT_INIT
  84.                         ;LABEL RT_SIZE
  85.  
  86. modName:
  87.     DC.B    'romTag.memcard_Boot',0
  88.     DC.W    0
  89. idtag:
  90.     DC.B    'memcard_Boot (07 Feb 91)',13,10,0
  91.     CNOP    0,4
  92.     DC.W    0
  93. endtag:
  94.  
  95. Init:
  96. *--- Make a purple screen for a bit
  97.     MOVE.L    #CUSTOM,a0
  98.     MOVE.W    #COLORON,bplcon0(a0)
  99.     MOVE.W    #0,bpldat(a0)
  100.     MOVE.W    #CC_PURPLE,color(a0)
  101.  
  102.     MOVE.L    #ODELAY,d1
  103. 1$    MOVE.L    #IDELAY,d0
  104. 2$    SUB.L    #1,d0
  105.     BNE.S    2$
  106.     SUB.L    #1,d1
  107.     BNE.S    1$
  108.  
  109.     RTS
  110.  
  111.     END
  112.  
  113.